/**
 */
package org.autosar.schema.r4;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>SOMEIPSERVICEINSTANCETYPE</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSHORTNAME <em>SHORTNAME</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getCATEGORY <em>CATEGORY</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getDESC <em>DESC</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEID <em>SERVICEID</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINSTANCEID <em>INSTANCEID</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getPROTOCOLVERSION <em>PROTOCOLVERSION</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINTERFACEVERSION <em>INTERFACEVERSION</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEINTERFACETYPE <em>SERVICEINTERFACETYPE</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getEVENTGROUPS <em>EVENTGROUPS</em>}</li>
 *   <li>{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getECUCQUERY <em>ECUCQUERY</em>}</li>
 * </ul>
 *
 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE()
 * @model extendedMetaData="name='SOMEIP-SERVICE-INSTANCE-TYPE' kind='elementOnly'"
 * @generated
 */
public interface SOMEIPSERVICEINSTANCETYPE extends EObject {
	/**
	 * Returns the value of the '<em><b>SHORTNAME</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>SHORTNAME</em>' attribute.
	 * @see #setSHORTNAME(String)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_SHORTNAME()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
	 *        extendedMetaData="kind='element' name='SHORT-NAME' namespace='##targetNamespace'"
	 * @generated
	 */
	String getSHORTNAME();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSHORTNAME <em>SHORTNAME</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>SHORTNAME</em>' attribute.
	 * @see #getSHORTNAME()
	 * @generated
	 */
	void setSHORTNAME(String value);

	/**
	 * Returns the value of the '<em><b>CATEGORY</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>CATEGORY</em>' attribute.
	 * @see #setCATEGORY(String)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_CATEGORY()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
	 *        extendedMetaData="kind='element' name='CATEGORY' namespace='##targetNamespace'"
	 * @generated
	 */
	String getCATEGORY();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getCATEGORY <em>CATEGORY</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>CATEGORY</em>' attribute.
	 * @see #getCATEGORY()
	 * @generated
	 */
	void setCATEGORY(String value);

	/**
	 * Returns the value of the '<em><b>DESC</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>DESC</em>' attribute.
	 * @see #setDESC(String)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_DESC()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
	 *        extendedMetaData="kind='element' name='DESC' namespace='##targetNamespace'"
	 * @generated
	 */
	String getDESC();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getDESC <em>DESC</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>DESC</em>' attribute.
	 * @see #getDESC()
	 * @generated
	 */
	void setDESC(String value);

	/**
	 * Returns the value of the '<em><b>SERVICEID</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>SERVICEID</em>' attribute.
	 * @see #isSetSERVICEID()
	 * @see #unsetSERVICEID()
	 * @see #setSERVICEID(int)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_SERVICEID()
	 * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int" required="true"
	 *        extendedMetaData="kind='element' name='SERVICE-ID' namespace='##targetNamespace'"
	 * @generated
	 */
	int getSERVICEID();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEID <em>SERVICEID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>SERVICEID</em>' attribute.
	 * @see #isSetSERVICEID()
	 * @see #unsetSERVICEID()
	 * @see #getSERVICEID()
	 * @generated
	 */
	void setSERVICEID(int value);

	/**
	 * Unsets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEID <em>SERVICEID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetSERVICEID()
	 * @see #getSERVICEID()
	 * @see #setSERVICEID(int)
	 * @generated
	 */
	void unsetSERVICEID();

	/**
	 * Returns whether the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEID <em>SERVICEID</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>SERVICEID</em>' attribute is set.
	 * @see #unsetSERVICEID()
	 * @see #getSERVICEID()
	 * @see #setSERVICEID(int)
	 * @generated
	 */
	boolean isSetSERVICEID();

	/**
	 * Returns the value of the '<em><b>INSTANCEID</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>INSTANCEID</em>' attribute.
	 * @see #isSetINSTANCEID()
	 * @see #unsetINSTANCEID()
	 * @see #setINSTANCEID(int)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_INSTANCEID()
	 * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int" required="true"
	 *        extendedMetaData="kind='element' name='INSTANCE-ID' namespace='##targetNamespace'"
	 * @generated
	 */
	int getINSTANCEID();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINSTANCEID <em>INSTANCEID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>INSTANCEID</em>' attribute.
	 * @see #isSetINSTANCEID()
	 * @see #unsetINSTANCEID()
	 * @see #getINSTANCEID()
	 * @generated
	 */
	void setINSTANCEID(int value);

	/**
	 * Unsets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINSTANCEID <em>INSTANCEID</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetINSTANCEID()
	 * @see #getINSTANCEID()
	 * @see #setINSTANCEID(int)
	 * @generated
	 */
	void unsetINSTANCEID();

	/**
	 * Returns whether the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINSTANCEID <em>INSTANCEID</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>INSTANCEID</em>' attribute is set.
	 * @see #unsetINSTANCEID()
	 * @see #getINSTANCEID()
	 * @see #setINSTANCEID(int)
	 * @generated
	 */
	boolean isSetINSTANCEID();

	/**
	 * Returns the value of the '<em><b>PROTOCOLVERSION</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>PROTOCOLVERSION</em>' attribute.
	 * @see #isSetPROTOCOLVERSION()
	 * @see #unsetPROTOCOLVERSION()
	 * @see #setPROTOCOLVERSION(int)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_PROTOCOLVERSION()
	 * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
	 *        extendedMetaData="kind='element' name='PROTOCOL-VERSION' namespace='##targetNamespace'"
	 * @generated
	 */
	int getPROTOCOLVERSION();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getPROTOCOLVERSION <em>PROTOCOLVERSION</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>PROTOCOLVERSION</em>' attribute.
	 * @see #isSetPROTOCOLVERSION()
	 * @see #unsetPROTOCOLVERSION()
	 * @see #getPROTOCOLVERSION()
	 * @generated
	 */
	void setPROTOCOLVERSION(int value);

	/**
	 * Unsets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getPROTOCOLVERSION <em>PROTOCOLVERSION</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetPROTOCOLVERSION()
	 * @see #getPROTOCOLVERSION()
	 * @see #setPROTOCOLVERSION(int)
	 * @generated
	 */
	void unsetPROTOCOLVERSION();

	/**
	 * Returns whether the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getPROTOCOLVERSION <em>PROTOCOLVERSION</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>PROTOCOLVERSION</em>' attribute is set.
	 * @see #unsetPROTOCOLVERSION()
	 * @see #getPROTOCOLVERSION()
	 * @see #setPROTOCOLVERSION(int)
	 * @generated
	 */
	boolean isSetPROTOCOLVERSION();

	/**
	 * Returns the value of the '<em><b>INTERFACEVERSION</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>INTERFACEVERSION</em>' attribute.
	 * @see #isSetINTERFACEVERSION()
	 * @see #unsetINTERFACEVERSION()
	 * @see #setINTERFACEVERSION(int)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_INTERFACEVERSION()
	 * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Int"
	 *        extendedMetaData="kind='element' name='INTERFACE-VERSION' namespace='##targetNamespace'"
	 * @generated
	 */
	int getINTERFACEVERSION();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINTERFACEVERSION <em>INTERFACEVERSION</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>INTERFACEVERSION</em>' attribute.
	 * @see #isSetINTERFACEVERSION()
	 * @see #unsetINTERFACEVERSION()
	 * @see #getINTERFACEVERSION()
	 * @generated
	 */
	void setINTERFACEVERSION(int value);

	/**
	 * Unsets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINTERFACEVERSION <em>INTERFACEVERSION</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #isSetINTERFACEVERSION()
	 * @see #getINTERFACEVERSION()
	 * @see #setINTERFACEVERSION(int)
	 * @generated
	 */
	void unsetINTERFACEVERSION();

	/**
	 * Returns whether the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getINTERFACEVERSION <em>INTERFACEVERSION</em>}' attribute is set.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return whether the value of the '<em>INTERFACEVERSION</em>' attribute is set.
	 * @see #unsetINTERFACEVERSION()
	 * @see #getINTERFACEVERSION()
	 * @see #setINTERFACEVERSION(int)
	 * @generated
	 */
	boolean isSetINTERFACEVERSION();

	/**
	 * Returns the value of the '<em><b>SERVICEINTERFACETYPE</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>SERVICEINTERFACETYPE</em>' attribute.
	 * @see #setSERVICEINTERFACETYPE(String)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_SERVICEINTERFACETYPE()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.String"
	 *        extendedMetaData="kind='element' name='SERVICE-INTERFACE-TYPE' namespace='##targetNamespace'"
	 * @generated
	 */
	String getSERVICEINTERFACETYPE();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getSERVICEINTERFACETYPE <em>SERVICEINTERFACETYPE</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>SERVICEINTERFACETYPE</em>' attribute.
	 * @see #getSERVICEINTERFACETYPE()
	 * @generated
	 */
	void setSERVICEINTERFACETYPE(String value);

	/**
	 * Returns the value of the '<em><b>EVENTGROUPS</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>EVENTGROUPS</em>' containment reference.
	 * @see #setEVENTGROUPS(EVENTGROUPSTYPE)
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_EVENTGROUPS()
	 * @model containment="true"
	 *        extendedMetaData="kind='element' name='EVENT-GROUPS' namespace='##targetNamespace'"
	 * @generated
	 */
	EVENTGROUPSTYPE getEVENTGROUPS();

	/**
	 * Sets the value of the '{@link org.autosar.schema.r4.SOMEIPSERVICEINSTANCETYPE#getEVENTGROUPS <em>EVENTGROUPS</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>EVENTGROUPS</em>' containment reference.
	 * @see #getEVENTGROUPS()
	 * @generated
	 */
	void setEVENTGROUPS(EVENTGROUPSTYPE value);

	/**
	 * Returns the value of the '<em><b>ECUCQUERY</b></em>' attribute list.
	 * The list contents are of type {@link java.lang.String}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>ECUCQUERY</em>' attribute list.
	 * @see org.autosar.schema.r4.R4Package#getSOMEIPSERVICEINSTANCETYPE_ECUCQUERY()
	 * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
	 *        extendedMetaData="kind='element' name='ECUC-QUERY' namespace='##targetNamespace'"
	 * @generated
	 */
	EList<String> getECUCQUERY();

} // SOMEIPSERVICEINSTANCETYPE
